Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра автоматизованих систем управління
Звіт
до лабораторної роботи № 4
з дисципліни «Об’єктно-орієнтоване програмування»
на тему «Створення власних класів та об'єктів»
Львів – 2010
Лабораторна робота №4
з курсу «Об’єктно-орієнтоване програмування»
Створення власних класів та об'єктів
Мета: засвоїти основні поняття об'єктно-орієнтованого програмування, навчитися створювати свої об'єкти і будувати програми, засновані на об'єктному підході.
Короткі теоретичні відомості
У 80-х роках стали з'являтися перші комерційні системи розробки, у яких була реалізована нова парадигма програмування, так званий об'єктний підхід, що дозволило різко підвищити продуктивність праці програмістів. Підхід був заснований на понятті об'єкта, як екземпляра (представника) певного класу. Клас розглядається як тип даних, у якому поєднуються як поля даних, так і методи їхньої обробки. Об'єкт є змінною цього типу.
Фактично об'єкт став відбивати реальні та абстрактні поняття навколишнього світу. Наприклад, автомобіль характеризується такими полями як марка, тип двигуна, наявність коліс і керма, а файл - назвою та розміром. "Методи" автомобіля визначають його здатність рухатися в потрібному напрямку у відповідності зі значеннями своїх полів: обсягом наявного бензину, кутом повороту керма. З файлу за допомогою методів можна зчитувати дані, змінювати їх і записувати назад.
Використовуючи об'єктно-орієнтоване програмування можна створювати програми, ґрунтуючись на поняттях класу та об'єкта. Працювати зі звичними поняттями людині легше, ніж з абстрактними числами. При цьому можна виділити певний набір класів, що потрібні при створенні найрізноманітніших програм. Ці класи використовуються повторно, без витрати часу на їх програмування. Саме такий підхід і реалізований у системі програмування C++ Builder.
Використання класів та об'єктів у програмах
Клас у C++ Builder описується у складі модуля (unit) або в складі заголовочних файлів(header files). Модулі - це частини на які розбивається програма. Кожен модуль складається з двох розділів – загловочного файлу і файлу реалізації.
Опис класів
Формат опису класу такий:
type <ім’я класу> = class (<ім’я батьківського класу>)
private
{поля, методи}
protected
{поля, методи, властивості}
public
{поля, методи, властивості}
published
{поля, методи, властивості}
end;
Ім’я класу – будь-який ідентифікатор; як правило, починається з великої літери Т. Ім’я надкласу може не вказуватись, тоді вважається, що клас є безпосереднім нащадком класу TObject. В ObjectPascal клас TObject є базовим класом для усіх об’єктів.
В описі класу визначають поля і методи.
Поля – це певні характеристики об’єктів класу (описують як змінні).
Методи – це операції над об’єктами класу (описують як процедури та функції).
Наступні директиви керують правами доступу до елементів класу.
Private (особистий, закритий) містить поля та методи, які використовуються лише об’єктами цього класу.
Protected (захищений) містить поля та методи, доступні також для всіх нащадків цього класу.
Public (відкритий) – поля та методи, а також властивості, доступні для зовнішнього використання, у тому числі з об’єктів інших класів.
Published (для публікації) містить поля, методи, які є відкритими, а також властивості які будуть доступні під час проектування у інспекторі об’єктів Delphi (для перегляду і зміни).
Якщо директиви не вказані, то за замовчуванням вважається, що встановлено директиву Published.
Завдання: Описати клас для одномірних масивів цілих чисел (векторів). Передбачити можливість звертання до окремого елемента масиву з контролем виходу за межі масиву, можливість завдання довільних границь індексів при створенні об’єкта та виконання операцій поелементного додавання та віднімання масивів з однаковими границями індексів, множення та ділення всіх елементів масиву на скаляр, вивід на екран елемента масиву по заданому індексу і всього масиву
Програма:
unit Unit1;
inte...